/**
 * 温度传递对象
 */
export interface MonitorData {
  id: number | null
  timestamp: Date
  temperature: number
  // 温度列表近最近6个数据
  temperatureList: number[]
  humidity: number
  // 湿度列表近最近6个数据
  humidityList: number[]
  airQuality: number
  co2Level: number
}

/**
 * 年月周日数据对象  分别获取温度湿度 空气质量 co2
 */
export interface YearMonthWeekDayData {
  // 温度数据 年
  temperatureYear: number[]
  // 湿度数据 年
  humidityYear: number[]
  // 空气质量数据 年
  airQualityYear: number[]
  // co2数据 年
  co2LevelYear: number[]
  // 温度数据 月
  temperatureMonth: number[]
  // 湿度数据 月
  humidityMonth: number[]
  // 空气质量数据 月
  airQualityMonth: number[]
  // co2数据 月
  co2LevelMonth: number[]
  // 温度数据 周
  temperatureWeek: number[]
  // 湿度数据 周
  humidityWeek: number[]
  // 空气质量数据 周
  airQualityWeek: number[]
  // co2数据 周
  co2LevelWeek: number[]
  // 温度数据 日
  temperatureDay: number[]
  // 湿度数据 日
  humidityDay: number[]
  // 空气质量数据 日
  airQualityDay: number[]
  // co2数据 日
  co2LevelDay: number[]
}

/**
 * 数据分析对象
 */
export interface DataAnalysis {
  // 时间类型 天 周 月 年
  timeType: string | null;
  // 数据类型
  dataType: string | null;
}


/**
 * 基础设备控制指令接口
 */
export interface DeviceControlCommand {
  // 设备唯一标识符（可为空）
  id: number | null;

  // 指令发送时间戳
  timestamp: Date;

  // 是否开启设备（通用开关控制）
  power?: boolean;
}

/**
 * 风扇控制指令接口，继承自基础指令
 */
export interface FanControlCommand extends DeviceControlCommand {
  // 设备类型固定为 FAN
  deviceType: 'FAN';

  // 风速等级（1-10 或 具体档位）
  speed?: number;

  // 是否开启摆头功能
  oscillate?: boolean;
}

/**
 * 灯光控制指令接口
 */
export interface LightControlCommand extends DeviceControlCommand {
  // 设备类型固定为 LIGHT
  deviceType: 'LIGHT';

  // 亮度级别（0-100）
  brightness?: number;

  // 灯光颜色（十六进制或预设名称）
  color?: string;
}

/**
 * 空调控制指令接口
 */
export interface AcControlCommand extends DeviceControlCommand {
  // 设备类型固定为 AC
  deviceType: 'AIR_CONDITIONER';

  // 当前温度设定值
  temperature?: number;

  // 运行模式（cool / heat / fan / auto）
  mode?: AcMode;

  // 风速设置（low / medium / high）
  fanSpeed?: AcFanSpeed;
}

/**
 * 百叶窗/风扇角度控制指令接口
 */
export interface AngleControlCommand extends DeviceControlCommand {
  // 设备类型如 WINDOW 或 FAN_WITH_ANGLE
  deviceType: 'WINDOW' | 'FAN_WITH_ANGLE';

  // 角度设置（0-180）
  angle?: number;
}

export type AcMode = 'COOL' | 'HEAT' | 'DRY' | 'FAN';
export type AcFanSpeed = 'low' | 'medium' | 'high';

/**
 * 设备概览对象
 */
export interface DeviceOverview {
  // 设备唯一标识符
  id: number;

  // 设备名称
  name: string;

  // 设备类型
  type: string;

  // 设备状态
  status: string;

  // 设备图标
  icon: string;

  // 设备图标颜色
  bgColor: string;
}
